// Defines potion types
//--------------------------------
#ifndef POTIONDATA_H
#define POTIONDATA_H
#include "item.h"

class Potion : public Item, public BIItemSymbol, public BIItemCategory, public BIItemWeight, public BIItemType {
public:
    
    Potion() { }
    virtual ~Potion() { }

protected:

    virtual bool ItemSymbol( IO::Sym* symbol ) const;
    virtual bool ItemType( uint* type ) const;
    virtual bool ItemCategory( uint* category ) const;
    virtual bool ItemWeight( uint* weight ) const;
    virtual bool OnEaten( Creature* c );

};

class HealingPotion : public Potion {
public:

    HealingPotion() { }
    virtual ~HealingPotion() { }

protected:

    virtual bool Name( std::string* name, bool* plural, uint article ) const;
    virtual bool ItemSymbol( IO::Sym* symbol ) const;
    virtual bool OnEaten( Creature* c );

};

class ManaPotion : public Potion {
public:

    ManaPotion() { }
    virtual ~ManaPotion() { }

protected:

    virtual bool Name( std::string* name, bool* plural, uint article ) const;
    virtual bool ItemSymbol( IO::Sym* symbol ) const;
    virtual bool OnEaten( Creature* c );

};

#endif
